package com.qianxun.iservers;

import java.rmi.Remote;
import java.util.ArrayList;

import com.qianxun.model.ServerCfg;

public interface IServer extends Remote {
	public ArrayList<ServerCfg> serverList = new ArrayList<ServerCfg>();
	public ServerCfg myServerCfg = new ServerCfg();
	
	/**
	 * 子服务器禁止编写此方法
	 * @return 更新服务器列表是否成功
	 */
	public boolean updateServerList();
	/**
	 * 
	 * @return 更新子服务器列表是否成功
	 */
	public boolean updateServerList(ArrayList<ServerCfg> servers);
	/**
	 * 向主服务器注册本服务器
	 * @param server
	 * @return 是否注册成功
	 */
	public boolean register(ServerCfg server);
	/**
	 * 
	 * @return 服务器是否正在服务
	 */
	public boolean isActive(ServerCfg server);
	/**
	 * 
	 * @return 子服务器退出是是否成功
	 */
	public boolean exit();
	/**
	 * 
	 * @return Boss退出是是否成功
	 */
	public boolean exit(ServerCfg server);
	/**
	 * 
	 * @param query
	 * @return 一类数据
	 */
	public ArrayList getData(String query);
	/**
	 * 
	 * @param query
	 * @return 单独的数据
	 */
	public Object getSingleData(String query);
}
